מבוא לבינה מלאכותית פתרון בעיות על ידי חיפוש בגרף מצבים שאול מרקוביץ
בעיית רוכב האופנוע רוכב אופנוע נוסע מת א לאילת במהירות קבועה במשך 6 שעות. בדרכו חזרה מאילת מקטין הרוכב את מהירותו ב 15 - קמ ש, ולכן נמשכת דרכו חזרה 8 שעות. מצא את המרחק ת א - אילת. Shaul Markovitch 2005 2
פתרון בעיות מילוליות באמצעות מחשב שלב ראשון: מייצגים את הבעיה באמצעות מערכת משוואות שלב שני: מפעילים אלגוריתם לפתרון מערכת משוואות Shaul Markovitch 2005 3
פתרון בעיות תכנון באמצעות מחשב שלב ראשון: מייצגים את הבעיה באמצעות גרף מצבים שלב שני: מפעילים אלגוריתם לחיפוש מסלול בגרף Shaul Markovitch 2005 4
שלשה מיסיונרים Shaul Markovitch 2005 5
שלשה קניבלים Shaul Markovitch 2005 6
נהר Shaul Markovitch 2005 7
סירה עם מקום לשני אנשים Shaul Markovitch 2005 8
מצב העולם Shaul Markovitch 2005 9
מצב מטרה Shaul Markovitch 2005 10
אילוץ Shaul Markovitch 2005 11
פתרון בעיות ע י חיפוש במרחב מצבים יצוג מצבי העולם האפשריים ע י גרף מצבים יצוג הבעיה ע י המצב הנוכחי וקבוצת מצבי מטרה חיפוש מסלול בגרף המצבים מהמצב הנוכחי לאחד ממצבי המטרה Shaul Markovitch 2005 12
הגדרת תחום הבעיות על ידי גרף המצבים הגדרת קבוצת המצבים האפשריים הגדרת האופרטורים המעבירים ממצב למצב Shaul Markovitch 2005 13
הגדרת קבוצת המצבים האפשריים ההחלטה מה מהווה מצב הינה קריטית להצלחת הסוכן קבוצת המצבים צריכה להיות עשירה מספיק כדי לאפשר פתרון הבעיה צריך להזהר מהגדרת קבוצה שמכילה מצבים לא רלוונטיים רבים שיהפכו את המרחב לגדול מידי Shaul Markovitch 2005 14
איך נתאר מצב בפתרון בעיית הקניבלים והמיסיונרים? Shaul Markovitch 2005 15
יצוג מצב בבעיית המיסיונרים וקניבלים - נסיון ראשון מצב ייוצג ע י רביעיה R M L, C L, M R, C הרביעיה מתארת את מספר הקניבלים והמיסיונרים בכל גדה לדוגמא, מצב ההתחלה הינו 3,0,0,3 חסר: מיקום הסירה Shaul Markovitch 2005 16
יצוג מצב בבעיית המיסיונרים וקניבלים -נסיון שני M 1, M 2, M 3, C 1, C 2, C 3, B מצב ייוצג ע י שביעיה M i {Left, Right} : Location of M i B {Left, Right} : Location of boat אינפורמציה מיותרת: מיקום ביניים של הסירה, התייחסות אינדיבידואלית לאנשים Shaul Markovitch 2005 17
יצוג מצב בבעיית המיסיונרים וקניבלים מצב ייוצג ע י חמישיה B M L, C L, M R, C R, מספר המסיונרים בגדה השמאלית M L B {Left, Right} : Location of boat Shaul Markovitch 2005 18
יצוג הקשתות בגרף המצבים ע י אופטורים אופרטור הינו פעולה שהסוכן יכול להפעיל כדי להעביר את העולם ממצב למצב ביתר דיוק - אופרטור הינו פונקציה המקבלת מצב ומחזירה מצב לכל אופרטור מוגדר תחום הגדרה Let O be the set of operators, S the set of all states Domain(o) S, o O Shaul Markovitch 2005 19
הגדרת הקשתות בגרף המצבים E = { s 1, s 2 o O [s 1 Domain(o)&s 2 = o(s 1 )]} Shaul Markovitch 2005 20
הגדרת קבוצת המצבים עבור בעיית המיסיונרים והקניבלים S={ C L, M L, C R, M R, B C L, M L, C R, M R 0, C L + C R = 3, M L + M R = 3, B {Left, Right} (1) Shaul Markovitch 2005 21
הגדרת האופרטורים עבור בעיית המיסיונרים והקניבלים O={MML, CCL, MCL, ML, CL, MMR, CCR, MCR, MR, CR} Domain(MML)={ C L, M L, C R, M R, Right M R 2, M R 2 C R M R 2 = 0, M L + 2 C L } MML ( C L, M L, C R, M R, Right = C L, M L + 2, C R, M R 2, Left Shaul Markovitch 2005 22
יצוג הקשתות ע י רשימת המצבים הבאים לפעמים במקום להשתמש באופרטורים, מציינים את רשימת המצבים הבאים מכל מצב Succ(s) : S 2 S, s S Shaul Markovitch 2005 23
הגדרת מחיר על הקשתות ישנם תחומי בעיות עבורן מוגדר מחיר לא בהכרח אחיד על הקשתות המחיר ניתן ע י פונקצית מחיר המגדירה מחיר מעבר בין שני מצבים עוקבים Cost : { s 1, s 2 s 1 S, s 2 Succ(s 1 )} R כאשר הפונקציה אינה נתונה מניחים שהמחיר הוא 1 לכל הקשתות Shaul Markovitch 2005 24
הגדרת בעיה תחום בעיות מגדיר את העולם בו נמצא הסוכן ואת השפעת פעולותיו על העולם בעיה ספציפית מוגדרת ע י זוג של מצב התחלתי (נוכחי) וקבוצת מצבי מטרה מצבי המטרה נתנים בצורה ישירה או ע י פרדיקט על מרחב המצבים G : S {T RUE, F ALSE} Shaul Markovitch 2005 25
דוגמא - חידת הפאזל 5 1 3 1 2 3 4 6 4 5 6 7 2 8 7 8? Shaul Markovitch 2005 26
קבוצת המצבים קבוצת האופרטורים מרחב המצבים S = { t 1,..., t 9 0 t i 8, t i t j } O = {Up, Down, Left, Right} 5 1 3 4 6 7 2 8 Up Down Left Right 5 3 5 1 3 5 1 3 5 1 3 4 1 6 4 2 6 4 6 4 6 7 2 8 7 8 7 2 8 7 2 8 Shaul Markovitch 2005 27
הגדרת הבעיה s i = 5, 1, 3, 4, 0, 6, 7, 2, 8 s g = 1, 2, 3, 4, 5, 6, 7, 8, 0 מצב התחלתי מצב מטרה 5 1 3 1 2 3 4 6 4 5 6 7 2 8 7 8 Shaul Markovitch 2005 28
דוגמא: חידת הסוס h נתון לוח שחמט ריק וסוס שניצב באחת הפינות. מצאו מסלול של מהלכי סוס שיכסה את כל משבצות הלוח ולא יבקר פעמיים באותה משבצת? Shaul Markovitch 2005 29
מרחב המצבים S = { 1, 1,..., r n, c n 1 n 64, 1 r i, c i 8} O = { x, y 2 x, y 2, x + y = 3} x, y ( 1, 1,..., r n, c n ) = 1, 1,..., r n, c n, r n + x, c n + y Domain( x, y ) = { 1, 1,..., r n, c n S 1 r n + x 8, 1 c n + y 8, r n + x, c n + y r i, c i 1 i n} Shaul Markovitch 2005 30
h Shaul Markovitch 2005 31
חידת הסוס: יצוג הבעיה s i = 1, 1 S g = {s S length(s) = 64} 1 38 55 34 3 36 19 22 54 47 2 37 20 23 4 17 39 56 33 46 35 18 21 10 48 53 40 57 24 11 16 5 59 32 45 52 41 26 9 12 44 49 58 25 62 15 6 27 31 60 51 42 29 8 13 64 50 43 30 61 14 63 28 7 Shaul Markovitch 2005 32
חידת המיכלים נתונים 2 מיכלים בעלי קבולת של 3 ליטר ו 5 ליטר בדיוק וכן בריכה גדולה מלאה במים. עליכם למלא באחד המיכלים 4 ליטר בדיוק ע י שפיכת מים בין מיכל למיכל או בין מיכל לבריכה Shaul Markovitch 2005 34
מרחב המצבים Capacities = m 1,..., m n S = { c 1,..., c n 0 c i m i } O = { i, j i j, 0 i, j n} i, j ( c 1,..., c i,... c j,..., c n ) = c 1,..., c i,... c j,..., c n { c 0 : i = mj c j c i c i (m j c j ) : otherwise { c j = cj + c i : m j c j c i m j : otherwise Shaul Markovitch 2005 35
יצוג הבעיה Capacities = (0, 0, 10000) s i = (0, 0, 10000) s g = { j 3, j 5, p S j 5 = 4} הברכה מיוצגת כמיכל נוסף בעל קבולת גדולה מאוד Shaul Markovitch 2005 36
? חיפוש ברשת נתון דף הבית של הטכניון. נתון פרדיקט המקבל כקלט דף ובודק אם זהו דף הבית של קורס בנושא בינה מלאכותית. מצאו דף בית של קורס בבינה מלאכותית הנמצא בטכניון Shaul Markovitch 2005 37
מרחב המצבים קבוצת המצבים: אוסף דפי הרשת האופטורים: קבוצת הקישורים מצב התחלה: דף הבית של הטכניון מטרה: מוגדרת ע י הפרדיקט הבודק האם דף שייך לקורס בבינה מלאכותית Shaul Markovitch 2005 38
אלגוריתמים לחיפוש במרחב מצבים אלגוריתמי החיפוש מתחילים מהמצב ההתחלתי בתחילה הגרף מוגדר רק בצורה לא מפורשת אלגוריתמי החיפוש חושפים בהדרגה חלקים מגרף המצבים והופכים אותו לגרף מפורש Shaul Markovitch 2005 39
פתרון לבעיית חיפוש הפתרון לבעיית חיפוש היא סדרת אופרטורים המובילים מהמצב ההתחלתי למצב סופי Sol(o 1,..., o n ) G(o n (o n 1 (... o 1 (s i )...))) = T RUE Shaul Markovitch 2005 40
פתרון ע י סדרת מצבים כאשר הקשתות בגרף ניתנות ע י פונקציית עוקב, הפתרון לבעיית חיפוש היא סדרת מצבים על מסלול המוביל מהמצב ההתחלתי למצב סופי Sol(s 1,..., s n ) s 1 = s i, G(s n ) = T RUE, i < n[s i+1 Succ(s i )] Shaul Markovitch 2005 41
מצב סופי כפתרון לפעמים המסלול למצב המטרה אינו מענין אותנו אלא רק מצב המטרה עצמו זה יתכן כמובן רק כשמצב המטרה אינו נתון במפורש אלא ע י פרדיקט לדוגמה, יתכן שאנו מחפשים דף אינטרנט בעל תכונות מסוימות. כשנמצא כזה נרצה לקבל את הדף Shaul Markovitch 2005 42
פעולת פיתוח צומת הפעולה הבסיסית של אלגוריתמי החיפוש היא פעולת פיתוח צומת פעולה זו מקבלת צומת ומחזירה את קבוצת הצמתים העוקבים 5 1 3 4 6 7 2 8 Up Down Left Right 5 3 5 1 3 5 1 3 5 1 3 4 1 6 4 2 6 4 6 4 6 7 2 8 7 8 7 2 8 7 2 8 Shaul Markovitch 2005 43
אסטרטגיות חיפוש אסטרטגית חיפוש מגדירה כיצד יש לחפש במרחב כל אסטרטגיות החיפוש מתחילות לחפש ממצב ההתחלה כל אסטרטגיות החיפוש מבצעות סדרה של פיתוחי צמתים האסטרטגיות נבדלות בבחירת הצומת הבא לפיתוח ובהחלטה אילו צמתים ישמרו בזכרון Shaul Markovitch 2005 44
מבנה נתונים: צומת המצב במרחב המצבים אותו מיצג הצומת מצביע לצומת ממנו נוצר הצומת הנוכחי state parent state parent 6 8 3 4 2 1 7 5 NIL state parent 6 8 3 4 2 7 5 1 state parent 6 8 3 4 2 1 7 5 Shaul Markovitch 2005 45
ההבדל בין צומת למצב מצב הינו יצוג של קונפיגורציה רגעית של העולם בו פועל הסוכן צומת מייצג שלב בתהליך החיפוש של הסוכן כל צומת מיצג מצב אולם יתכן שכמה צמתים ייצגו את אותו המצב Shaul Markovitch 2005 46
state parent 6 8 3 4 2 1 7 5 NIL state parent 6 8 3 4 2 7 5 1 state parent 6 8 3 4 2 1 7 5 state parent 6 8 3 4 2 1 7 5 state parent 6 8 4 2 3 7 5 1 state parent 6 8 3 4 2 7 5 1 Shaul Markovitch 2005 47
path הפרוצדורה מקבלת צומת, עוקבת אחרי מצביעי ההורים עד שמגיעה לצומת ההתחלה ומחזירה את המסלול path(n) if Null(parent[N]) then return [ ] else return (path(parent[n]) state[n]) Shaul Markovitch 2005 48
החזרת סדרת אופרטורים כדי להחזיר סדרת אופרטורים במקום סדרת מצבים אנחנו מוסיפים למבנה הנתונים של צומת גם את האופרטור שהביא למצב op-path(n) if Null(parent[N]) then return [ ] else return(op-path(parent[n]) operator[n]) Shaul Markovitch 2005 49
state operator parent op-path(n6)=[up,left] 6 8 3 4 2 1 7 5 NIL NIL state operator parent state operator parent 6 8 3 4 2 7 5 1 up 6 8 3 4 2 1 7 5 left state operator parent state operator parent state operator parent 6 8 3 4 2 1 7 5 down 6 8 4 2 3 7 5 1 up 6 8 3 4 2 7 5 1 left N6 Shaul Markovitch 2005 50
הערכת ביצועים של אלגוריתם חיפוש משאבי חיפוש טיב פתרון Shaul Markovitch 2005 51
משאבי חיפוש - זמן ריצה זמן ריצה - משאב מרכזי אותו נרצה לצמצם מדד בעייתי - רגיש לחמרה, למהדר, לאופטימיזציה, ליכולת תכנות מדד חליפי - מספר הצמתים שפותחו מדד דומה - מספר הצמתים שנוצרו Shaul Markovitch 2005 52
משאבי חיפוש - צריכת זכרון תהליכי חיפוש עלולים להכשל בגלל חוסר זכרון תהליך חיפוש שמייצר 1,000,000 צמתים בשניה ומקדיש 10 בתים לכל צמת עלול להכשל כבר אחרי 100 שניות לכן חשוב למדוד את צריכת הזכרון של אלגוריתמי חיפוש שונים Shaul Markovitch 2005 53
איכות הפתרון כאשר האלגוריתם נדרש להחזיר מסלול פתרון, נמדדת איכות הפתרון בד כ ע י אורך או מחיר המסלול דוגמא: תכנון סדרת פעולות עבור רובוט. במקרה כזה סדרה קצרה יותר עדיפה כאשר המסלול אינו דרוש יתכן שקיים מדד נוסף שמכמת איכות של מצבי מטרה דוגמא: דרגת רלוונטיות שמוחזרת ע י מנועי חיפוש Shaul Markovitch 2005 54
תכונות של אלגוריתמי חיפוש שלמות : אלגוריתם חיפוש הינו שלם אם מובטח שיחזיר פתרון כאשר פתרון קיים. אופטימליות (קבילות): אלגוריתם חיפוש הינו אופטימלי כאשר מובטח שיחזיר את הפתרון בעל המחיר המינימלי סיבוכיות זכרון סיבוכיות זמן Shaul Markovitch 2005 55
סוגי אלגוריתמי חיפוש אלגוריתמים עוורים או לא מיודעים מחפשים פתרון בהנתן מרחב מצבים ובעיה ללא שום מידע נוסף אלגוריתמים מיודעים או יוריסטיים משתמשים בידע נוסף כדי ליעל את החיפוש Shaul Markovitch 2005 56